/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package paquetevistas.compra;

import Seguridad.Controlador.Validacion;
import Seguridad.Controlador.controladorseguridad;
import paquetevistas.Escritorio;
import controlador.compra.controladorcompra;
import java.util.Date;
import javax.swing.JOptionPane;
import modelos.Usuario;

/**
 *
 * @author Jacklin
 */
public class NuevoProveedor extends javax.swing.JInternalFrame {

    /**
     * Creates new form NuevoProveedor
     */
    public static AsignarProveedorProducto productoproveedor;
    public static controladorcompra mycontroladorcompra = new controladorcompra();
    public static Validacion validacion = new Validacion();

    //Para el registro de Log
    public static Usuario usuario = lbj.LBJ.Login.usuario;
    public static controladorseguridad mycontroladorseguridad = new controladorseguridad();

    public NuevoProveedor() {
        initComponents();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jLayeredPane1 = new javax.swing.JLayeredPane();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jrazonSocial = new javax.swing.JTextField();
        jruc = new javax.swing.JTextField();
        jdireccion = new javax.swing.JTextField();
        jtelefono = new javax.swing.JTextField();
        jcorreo = new javax.swing.JTextField();
        jdniContacto = new javax.swing.JTextField();
        jnombreContacto = new javax.swing.JTextField();
        jcelularContacto = new javax.swing.JTextField();
        jLayeredPane2 = new javax.swing.JLayeredPane();
        jButton1 = new javax.swing.JButton();
        jLabel9 = new javax.swing.JLabel();
        jButton2 = new javax.swing.JButton();
        jLabel11 = new javax.swing.JLabel();
        jButton5 = new javax.swing.JButton();
        jLabel12 = new javax.swing.JLabel();

        setClosable(true);
        setIconifiable(true);
        setTitle("Proveedor Nuevo");

        jLabel1.setText("Razón Social:");
        jLayeredPane1.add(jLabel1);
        jLabel1.setBounds(30, 30, 110, 14);
        jLabel1.getAccessibleContext().setAccessibleDescription("");

        jLabel2.setText("Dirección:");
        jLayeredPane1.add(jLabel2);
        jLabel2.setBounds(30, 90, 90, 10);

        jLabel3.setText("Teléfono:");
        jLayeredPane1.add(jLabel3);
        jLabel3.setBounds(30, 120, 100, 14);

        jLabel4.setText("Correo:");
        jLayeredPane1.add(jLabel4);
        jLabel4.setBounds(30, 150, 90, 14);

        jLabel5.setText("DNI del Contacto:");
        jLayeredPane1.add(jLabel5);
        jLabel5.setBounds(30, 180, 140, 14);

        jLabel6.setText("Nombre del contacto:");
        jLayeredPane1.add(jLabel6);
        jLabel6.setBounds(30, 210, 150, 14);

        jLabel7.setText("Celular del contacto:");
        jLayeredPane1.add(jLabel7);
        jLabel7.setBounds(30, 240, 150, 14);

        jLabel8.setText("Ruc:");
        jLayeredPane1.add(jLabel8);
        jLabel8.setBounds(30, 60, 70, 14);

        jrazonSocial.setName(""); // NOI18N
        jrazonSocial.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrazonSocialActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jrazonSocial);
        jrazonSocial.setBounds(190, 30, 200, 20);

        jruc.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jrucActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jruc);
        jruc.setBounds(190, 60, 200, 20);

        jdireccion.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jdireccionActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jdireccion);
        jdireccion.setBounds(190, 90, 200, 20);
        jLayeredPane1.add(jtelefono);
        jtelefono.setBounds(190, 120, 200, 20);

        jcorreo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jcorreoActionPerformed(evt);
            }
        });
        jLayeredPane1.add(jcorreo);
        jcorreo.setBounds(190, 150, 200, 20);
        jLayeredPane1.add(jdniContacto);
        jdniContacto.setBounds(190, 180, 200, 20);
        jLayeredPane1.add(jnombreContacto);
        jnombreContacto.setBounds(190, 210, 200, 20);
        jLayeredPane1.add(jcelularContacto);
        jcelularContacto.setBounds(190, 240, 200, 20);

        jButton1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/save.png"))); // NOI18N
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton1);
        jButton1.setBounds(60, 20, 65, 41);

        jLabel9.setText("Guardar");
        jLayeredPane2.add(jLabel9);
        jLabel9.setBounds(70, 70, 60, 14);

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/limpiar.png"))); // NOI18N
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton2);
        jButton2.setBounds(170, 20, 65, 40);

        jLabel11.setText("Limpiar");
        jLayeredPane2.add(jLabel11);
        jLabel11.setBounds(190, 70, 70, 14);

        jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/imagenes/error 1.png"))); // NOI18N
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        jLayeredPane2.add(jButton5);
        jButton5.setBounds(280, 20, 60, 40);

        jLabel12.setText("Cancelar");
        jLayeredPane2.add(jLabel12);
        jLabel12.setBounds(290, 70, 60, 14);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(31, 31, 31)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
                    .addComponent(jLayeredPane2))
                .addGap(51, 51, 51))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jLayeredPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 275, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLayeredPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(23, 23, 23))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jrazonSocialActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrazonSocialActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jrazonSocialActionPerformed

    private void jrucActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jrucActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jrucActionPerformed

    private void jcorreoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jcorreoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jcorreoActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        // TODO add your handling code here:
        jrazonSocial.setText("");
        jruc.setText("");
        jdireccion.setText("");
        jtelefono.setText("");
        jcorreo.setText("");
        jdniContacto.setText("");
        jnombreContacto.setText("");
        jcelularContacto.setText("");
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        String razonSocial = jrazonSocial.getText();
        String direccion = jdireccion.getText();
        String correo = jcorreo.getText();
        String nombreContacto = jnombreContacto.getText();
        Integer dniContacto = -1;
        Integer celularContacto = -1;
        Long limitinf1 = 9999999999L;
        Long limitsup1 = 100000000000L;
        Integer limitinf2 = 99999999;
        Integer limitsup2 = 1000000000;
        Integer limitinf3 = 999999;
        Integer limitsup3 = 10000000;
        Integer limitinf4 = 9999999;
        Integer limitsup4 = 100000000;

        if (validacion.es_vacio(razonSocial)) {
            JOptionPane.showMessageDialog(this, validacion.msj + "Razon Social");
        }else if(mycontroladorcompra.existeproveedor(razonSocial)){
            JOptionPane.showMessageDialog(this, "Ya existe un proveedor con el mismo nombre");
        }else if (validacion.es_vacio(jruc.getText())) {
            JOptionPane.showMessageDialog(this, validacion.msj + "Ruc");
        } else if (!validacion.es_numero_entero(jruc.getText())) {
            JOptionPane.showMessageDialog(this, "Debe insertar un número de 11 dígitos");
        } else {
            Long ruc = Long.parseLong(jruc.getText());
            if ((ruc.compareTo(limitinf1) < 0) || (ruc.compareTo(limitsup1) > 0)) {
                JOptionPane.showMessageDialog(this, "Debe insertar un número de 11 dígitos");
            }else if(mycontroladorcompra.existeproveedor(ruc)){
                JOptionPane.showMessageDialog(this, "Ya existe un proveedor con el mismo ruc");
            }else if (validacion.es_vacio(direccion)) {
                JOptionPane.showMessageDialog(this, validacion.msj + "Dirección");
            } else if (validacion.es_vacio(jtelefono.getText())) {
                JOptionPane.showMessageDialog(this, validacion.msj + "Teléfono");
            } else if (!validacion.es_numero_entero(jtelefono.getText())) {
                JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
            } else {
                Integer telefono = Integer.parseInt(jtelefono.getText());
                if ((telefono.compareTo(limitinf3) < 0) || (telefono.compareTo(limitsup3) > 0)) {
                    JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                } else if (validacion.es_vacio(jcorreo.getText())) {
                    JOptionPane.showMessageDialog(this, validacion.msj + "Correo");
                } else if (!validacion.es_correo(correo)) {
                    JOptionPane.showMessageDialog(this, validacion.msj);
                } else if (!(validacion.es_vacio(jdniContacto.getText()))) {
                    if (!validacion.es_numero_entero(jdniContacto.getText())) {
                        JOptionPane.showMessageDialog(this, "Debe insertar un número de 8 dígitos");
                    } else {
                        dniContacto = Integer.parseInt(jdniContacto.getText());
                        if ((dniContacto.compareTo(limitinf4) < 0) || (dniContacto.compareTo(limitsup4) > 0)) {
                            JOptionPane.showMessageDialog(this, "Debe insertar un número de 8 dígitos");
                        } else if (!(validacion.es_vacio(jcelularContacto.getText()))) {
                            if (!validacion.es_numero_entero(jcelularContacto.getText())) {
                                JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                            } else {
                                celularContacto = Integer.parseInt(jcelularContacto.getText());
                                if ((celularContacto.compareTo(limitinf2) < 0) || (celularContacto.compareTo(limitsup2) > 0)) {
                                    JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                                } else {
                                    mycontroladorcompra.guardaproveedor(razonSocial, ruc, direccion, telefono, correo, dniContacto,
                                            nombreContacto, celularContacto);
                                    lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                                    JOptionPane.showMessageDialog(this, "El proveedor se agregó correctamente");
                                    this.dispose();
                                }
                            }
                        } else {
                            mycontroladorcompra.guardaproveedor(razonSocial, ruc, direccion, telefono, correo, dniContacto,
                                    nombreContacto, celularContacto);
                            lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                            JOptionPane.showMessageDialog(this, "El proveedor se agregó correctamente");
                            this.dispose();
                        }
                    }
                } else if (!(validacion.es_vacio(jcelularContacto.getText()))) {
                    if (!validacion.es_numero_entero(jcelularContacto.getText())) {
                        JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                    } else {
                        celularContacto = Integer.parseInt(jcelularContacto.getText());
                        if ((celularContacto.compareTo(limitinf2) < 0) || (celularContacto.compareTo(limitsup2) > 0)) {
                            JOptionPane.showMessageDialog(this, "Debe insertar un número de 9 dígitos");
                        } else {
                            mycontroladorcompra.guardaproveedor(razonSocial, ruc, direccion, telefono, correo, dniContacto,
                                    nombreContacto, celularContacto);
                            lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                            JOptionPane.showMessageDialog(this, "El proveedor se agregó correctamente");

                            mycontroladorseguridad.insertarlog(usuario, new Date(), "Insertar Proveedor", "Proveedor", "Registrar Proveedor");
                            this.dispose();
                        }
                    }
                } else {
                    mycontroladorcompra.guardaproveedor(razonSocial, ruc, direccion, telefono, correo, dniContacto,
                            nombreContacto, celularContacto);
                    lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
                    JOptionPane.showMessageDialog(this, "El proveedor se agregó correctamente");

                    mycontroladorseguridad.insertarlog(usuario, new Date(), "Insertar Proveedor", "Proveedor", "Registrar Proveedor");
                    this.dispose();
                }
            }
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jdireccionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jdireccionActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jdireccionActionPerformed

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        if (JOptionPane.showConfirmDialog(null, "¿Está seguro de cancelar el registro?",
                "Mensaje", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
            lbj.LBJ.Login.escritorio.proveedor.refreshSupplierTable();
            this.dispose();
        }
    }//GEN-LAST:event_jButton5ActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton5;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLayeredPane jLayeredPane1;
    private javax.swing.JLayeredPane jLayeredPane2;
    private javax.swing.JTextField jcelularContacto;
    private javax.swing.JTextField jcorreo;
    private javax.swing.JTextField jdireccion;
    private javax.swing.JTextField jdniContacto;
    private javax.swing.JTextField jnombreContacto;
    private javax.swing.JTextField jrazonSocial;
    private javax.swing.JTextField jruc;
    private javax.swing.JTextField jtelefono;
    // End of variables declaration//GEN-END:variables
}
